In recent years, real-time video communications have been increasingly employed not only by business enterprises of various sizes, but also government, educational, and healthcare institutions, as well as individuals. It is often useful to generate recordings of such real-time video communications that take place between client devices over a network, tracking both the audio and video produced by the respective devices in a single video file. Such recordings of real-time video communications between client devices can serve as valuable resources for reviewing and/or evaluating the level or quality of customer experience, service quality assurance, liability protection, etc., as well as for capturing accurate records of complete video interactions between the client devices.
The generation of recordings of real-time video communications between client devices can be problematic, however, because such real-time video communications typically take place at least in part over public networks such as the Internet, which generally operates as a packet network that employs the transmission control protocol (TCP)/Internet protocol (IP) stack of protocols for packet transmission. In such real-time video communications, the user datagram protocol (UDP) is typically used at the transport layer to deliver video packets at a specified rate. Further, the real-time transport protocol (RTP) is typically used in conjunction with the UDP to handle various functions such as data identification, sequence numbering, time stamping, and/or packet delivery monitoring.
However, using UDP/RTP video packets in real-time video communications has drawbacks because, while the UDP can deliver such UDP/RTP video packets at a specified rate, it generally cannot guarantee lossless delivery of the video packets. This can pose a problem for the generation of recordings of such real-time video communications because video players or other devices that attempt to decode encoded video frame data from video files containing such recordings may crash if the encoded video frame data has one or more missing video packets.
It would therefore be desirable to have improved systems and methods of video decoding and recording in real-time video communications in lossy network environments.